package composite.example;

/**
 * 组合模式定义了包含人力资源部和财务部这些基本对象和分公司、办事处等组合对象的类层次结构
 * 基本对象可以被组合成更复杂的组合对象，而组合对象又可以被组合，
 * 不断递归下去，任何用到基本对象的地方都可以使用组合对象
 * @author Chen Guang
 * @date 2019/4/18 0018 上午 11:28
 */
public interface Company {
    /**
     * 增加节点
     * @param company Company
     */
    void add(Company company);
    /**
     * 移除节点
     * @param company Company
     */
    void remove(Company company);
    /**
     * 展示
     * @param depth 深度
     */
    void display(int depth);
    /**
     * 展示职责
     */
    void lineOfDuty();
}
